package com.lpj.base.id.generator.service.impl.bean;

public class IdMetaFactory {
    //最大峰值适合  每秒同时产生65536个有序id  全局唯一id建议使用集群部署产生的id数量可以成倍增加
    // 理论基础 单台机器的tps大概为1万/s 所以最大峰值性完全可以满足
    //能使用8000年
    private static IdMeta maxPeak = new IdMeta((byte) 8, (byte) 16, (byte) 38, (byte) 1, (byte) 1, (byte) 0);
    //最小粒度适合内嵌性 每毫秒秒同时产生4096个有序id 业务唯一id建议使用
    //能使用139年
    // 可根据自身的业务需求做调整  可以每毫秒生成1w个以上的id
    private static IdMeta minGranularity = new IdMeta((byte) 6, (byte) 12, (byte) 42, (byte) 1, (byte) 1, (byte) 1);

    public static IdMeta getIdMeta(IdType type) {
        if (IdType.MAX_PEAK.equals(type)) {
            return maxPeak;
        } else if (IdType.MIN_GRANULARITY.equals(type)) {
            return minGranularity;
        }
        return null;
    }
}
